package com.sunshine.litemusic.base;

import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.view.LayoutInflater;
import android.view.View;
import android.widget.RelativeLayout;

import com.sunshine.litemusic.R;

/**
 * @author sunshine
 * @date 2020/05/28
 * 活动基类，所有活动需要继承该类，该类负责一些活动的基本和通用功能。
 */
public class BaseActivity extends AppCompatActivity {

    private Toolbar toolbar;

    /**
     * 重写父类方法实现自定义界面
     * @param layoutResID 界面布局文件
     */
    @Override
    public void setContentView(int layoutResID) {
        super.setContentView(layoutResID);
        View baseView = LayoutInflater.from(this).inflate(R.layout.activity_base, null, false);
        View view = LayoutInflater.from(this).inflate(layoutResID, null, false);
        RelativeLayout container = baseView.findViewById(R.id.base_container);
        container.addView(view);
        getWindow().setContentView(baseView);
        toolbar = baseView.findViewById(R.id.base_toolbar);
        initToolbar(toolbar);
    }

    /**
     * 设置自定义的顶栏
     * 注意需要设置全局主题为NoActionBar，否则会出现双重顶栏
     * @param toolbar 基类的顶栏
     */
    private void initToolbar(Toolbar toolbar){
        setSupportActionBar(toolbar);
        ActionBar actionBar = getSupportActionBar();
        if (null != actionBar){
            actionBar.setDisplayHomeAsUpEnabled(true);
            actionBar.setDisplayShowTitleEnabled(false);
        }
        toolbar.setTitleTextColor(getResources().getColor(android.R.color.white));
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                supportFinishAfterTransition();
            }
        });
    }

    /**
     * 重写父类方法对基类自定义的顶栏设置标题
     * @param title 标题文字
     */
    @Override
    public void setTitle(CharSequence title) {
        toolbar.setTitle(title);
    }

    /**
     * 设置为隐藏顶栏
     */
    protected void setNoTitle(){
        toolbar.setVisibility(View.GONE);
    }
}
